using System.Collections.Generic;
using BusinessLogic.BusinessEntity.Entities;

namespace DataAccess.Services.Interfaces
{
	public interface IUserGateway : IGatewayBase<DataControl.User>
	{
		bool Exists(int userId);
		bool Exists(string login);
		DataControl.User GetByAccountCode(string accountCode);
		int? EnsureUserCredentials(string login, string password);
		string GetUserPublicKey(int userId);
		IEnumerable<int> GetUserRoles(int userId);
		IList<DataControl.User> GetAllUsers();
		void AssignRole(int userId, int roleId);
		void DeleteRole(int userId, int roleId);
		void DeleteAllRoles(int userId);
		IList<int> GetRoles();
	}
}